package com.dk.util.json;

import cn.hutool.json.JSONUtil;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.serializer.SerializerFeature;
import com.alibaba.fastjson.JSON;
import com.dk.exception.JSONException;

import java.util.HashMap;
import java.util.Map;

/**
 * 解析JSON工具类
 */
public class JsonUtil {
    /**
     * 格式化json字符串为标准格式
     * @param json 原始响应信息
     * @return 格式化后的json串
     */
    public static String formatJson(String json) {
        if (JSONUtil.isJson(json)) {
            //将json字符串转换为json对象
            JSONObject object = JSONObject.parseObject(json);
            //格式化json串
            String pretty = JSON.toJSONString(object, SerializerFeature.PrettyFormat, SerializerFeature.WriteMapNullValue,
                    SerializerFeature.WriteDateUseDateFormat);
            return pretty;
        }else{
            return json;
        }
    }

    /**
     * 转换json字符串为value类型为String的Hashmap
     * @param json json字符串
     * @return HashMap
     */
    public static HashMap<String,String> parseJsonToHashMapForString(String json){
        HashMap<String,String> map = JSONObject.parseObject(json,HashMap.class);
        return map;
    }

    /**
     * 将json字符串转换为value类型为String的Map
     * @param json json字符串
     * @return Map
     */
    public static Map<String,String> parseJsonToMapForString(String json){
        Map<String,String> map = JSONObject.parseObject(json,Map.class);
        return map;
    }

}
